#pragma once

#include <Totem/types_config.h>

namespace Game
{
	class GameManager;
	class EntityManager;
	class Entity;

	namespace World
	{
		namespace Components { class Zone; }
		namespace Systems
		{
			class ZoneSystem
			{
			public:
				ZoneSystem(GameManager &gameMgr);
				~ZoneSystem();

				Entity &createZone();
				void add(Components::Zone *zone);
				void remove(Components::Zone *zone);

				void update(float dt);

				GameManager &getGameMgr() { return gameMgr; }
				EntityManager &getEntityMgr() { return *entityMgr; }

			private:
				GameManager &gameMgr;

				EntityManager *entityMgr;
				T_Vector<Components::Zone*>::Type zones;
			};
		}
	}
}
